iT邦幫忙

1

什麼是MVC框架? 如何用UML建模?

  • 分享至 

  • xImage
  •  

MVC模式的架構元件被設計用來處理開發中的應用程式的不同方面。MVC設計模式的作用是將表現層與業務邏輯分開。

為什麼開發人員關心MVC?MVC在應用和網路開發中很受歡迎,它是應用和網路開發中最廣泛使用的軟體設計模式之一。模型-檢視-控制器設計模式將關注點分成3個桶。

  • 模型 (Model)
  • 視圖 (View)
  • 控制器 (Controller)

模型視圖控制器架構模式將關注點分為 3 個桶之一:

  1. 模型存儲和管理數據。

    通常是數據庫,在我們的快速示例中,我們將使用瀏覽器上的本地 Web 存儲來說明這個概念。

  2. 視圖圖形用戶界面

    視圖是數據的可視化表示,如圖表、圖表、表格、表格。

    視圖包含直接與用戶交互的所有功能——比如單擊按鈕或輸入事件。

  3. 控制器應用程序的大腦。

    控制器連接模型和視圖。控制器將來自視圖的輸入轉換為需求以檢索/更新模型中的數據。

    控制器從視圖接收輸入,使用邏輯將輸入轉換為模型的需求,模型抓取數據,控制器將數據從模型傳遞回視圖,以便用戶在一個漂亮的顯示中看到。

MVC 的好處

  • 傳統上用於圖形用戶界面 (GUI)
  • 在網絡應用程序中流行
  • MVC 職責在客戶端和服務器之間劃分,兼容 Web 應用程序架構
  • MVC 是規劃開發時有用的設計模式
    -- 松耦合
  • 移除不必要的依賴
  • 無需修改即可重複使用
  • MVC 使模型類無需修改即可重用
  • 代碼重用
  • 可擴展代碼
  • 高凝聚力
  • 更易於維護或修改
  • 支持多個視圖
  • 每個部分都可以獨立測試(模型、視圖、控制器)

MVC 框架的目的

如上所述,MVC 軟件框架幫助我們分離應用程序的不同方面(輸入邏輯、業務邏輯和 GUI),同時提供這些元素之間的鬆散耦合。因此,信息(最可重用)邏輯屬於模型,GUI 屬於視圖。輸入邏輯屬於控制器。這種分離有助於您在構建應用程序時管理複雜性,因為它使您能夠一次專注於實現的一個方面。MVC 框架是一個好主意,原因有很多,包括:

  • 同時開發——因為 MVC 將應用程序的各個組件解耦,開發人員能夠在不同組件上並行工作,而不會相互影響或阻塞。
  • 可重用性——一個應用程序的相同(或相似)視圖可以重構為具有不同數據的另一個應用程序,因為視圖只是處理如何向用戶顯示數據。
  • 改進的可擴展性——如果您的應用程序由於數據庫訪問速度慢而開始出現性能問題,您可以升級運行數據庫的硬件而不影響其他組件
  • 低耦合——MVC 框架的本質是模型、視圖或控制器之間的低耦合。
  • 更好的可擴展性——由於組件之間的依賴性較低,因此對一個組件進行更改(修復錯誤或更改功能)不會影響另一個組件

使用 MVC 序列圖開髮用例場景

您可以對 MVC 序列圖中的生命線使用構造型,以直觀地清楚您在 MVC 中使用的對像類型。一個MVC序列圖有接口對象、控制器對象和實體對象:

  • 實體是表示系統數據的對象:客戶、產品、交易、購物車等。
  • 邊界是與系統參與者交互的對象:UserInterface、DataBaseGateway、ServerProxy 等。
  • 控件是介於邊界和實體之間的對象。控制器對象通常對應於用例場景,並且通常由序列圖表示。

MVC 元素之間的關係

這是 MVC 的簡單和假設的序列圖。您在此圖中看到的是,Web 用戶發起了一個查詢並生成了一個事件,該事件由控制器處理並從模型中獲取所需的信息,驗證信息並將結果集傳遞回視圖。

MVC 序列圖示例

示例 MVC 序列圖

假設有一個應用程序可以讓您搜索人員。UI 必須有一個文本字段,用戶可以在其中輸入搜索字符串,並且它可能有一個按鈕來開始搜索。最後,它必須有一個顯示搜索結果的區域。在我們的例子中,它是用一個列表組件實現的。

“搜索人員”用例場景是:

  • 用戶在文本字段中輸入搜索字符串
  • 用戶單擊搜索按鈕。
  • 搜索結果顯示在結果列表中。

MVC 序列圖示例

上面的序列圖顯示了用戶的按鈕單擊如何在應用程序中移動,直到結果最終顯示在列表組件中。

UML Modeling Resource and Diagramming


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言